Systems and methods for directed forums

ABSTRACT

An embodiment relates generally to a method of providing a directed discussion. The method includes providing for an on-line forum and providing a list of available personnel within the on-line forum. The method also includes receiving a query in the on-line forum and directing the query to the best available personnel on the list of available personnel.

FIELD

This invention relates generally to forums, more particularly, tosystems and methods for directed forums.

DESCRIPTION OF THE RELATED ART

A forum can be regarded as essentially a website composed of a number ofmember-written threads. Each thread entails a discussion or conversationin the form of a series of user-member written posts. These threadsremain saved on the forum website for future reading indefinitely oruntil deletion by a moderator.

Software packages that implement forum websites are generally wellknown. These software packages are widely available on the Internet in avariety of programming languages such as HypeterText Preprocess (“PHP”),Perl, Java, and active server pages (“ASP”). The configuration andrecords of posts can be stored in text files or in a database.

Although forums are an effective tool to exchange information, they arenot without drawbacks and disadvantages. For example, a user trying toobtain information on a particular issue may find it very difficult tolocate a definite answer on the issue. Accordingly, there is a need toimprove the likelihood of a user to obtain an answer for any issue theuser may have.

BRIEF DESCRIPTION OF THE DRAWINGS

Various features of the embodiments can be more fully appreciated, asthe same become better understood with reference to the followingdetailed description of the embodiments when considered in connectionwith the accompanying figures, in which:

FIG. 1 depicts an exemplary system in accordance with an embodiment;

FIG. 2 illustrates an exemplary service portal of the system shown inFIG. 1 in accordance with another embodiment;

FIG. 3 depicts an exemplary knowledge server of the system shown in FIG.1 in accordance with yet another embodiment;

FIG. 4 illustrates an exemplary issue tracker server of the system shownin FIG. 1 in accordance with yet another embodiment;

FIG. 5 depicts an exemplary chat server of the system shown in FIG. 1 inaccordance with yet another embodiment;

FIG. 6 illustrates an exemplary diagram of the forum module inaccordance with yet another embodiment;

FIG. 7 depicts an exemplary GUI widget in accordance with yet anotherembodiment;

FIG. 8 illustrates an exemplary user profile in accordance with yetanother embodiment; and

FIG. 9 depicts an exemplary flow diagram implemented by the directedforum module in accordance with yet another embodiment;

FIG. 10 depicts another exemplary flow diagram implemented by thedirected forum module in accordance with yet another embodiment; and

FIG. 11 depicts yet another exemplary flow diagram implemented by thedirected forum module in accordance with yet another embodiment.

DETAILED DESCRIPTION OF EMBODIMENTS

For simplicity and illustrative purposes, the principles of the presentinvention are described by referring mainly to exemplary embodimentsthereof. However, one of ordinary skill in the art would readilyrecognize that the same principles are equally applicable to, and can beimplemented in, all types of information portals, and that any suchvariations do not depart from the true spirit and scope of the presentinvention. Moreover, in the following detailed description, referencesare made to the accompanying figures, which illustrate specificembodiments. Electrical, mechanical, logical and structural changes maybe made to the embodiments without departing from the spirit and scopeof the present invention. The following detailed description is,therefore, not to be taken in a limiting sense and the scope of thepresent invention is defined by the appended claims and theirequivalents.

Embodiments pertain generally to a directed forum in a service portal.More particularly, a directed forum module can be configured to providea forum for a user community of the service portal. The directed forummodule can also be configured to provide a list of available personnelin a technical assistance (or help) group. More particularly, thedirected forum module can generate a graphical user interface (“GUI”)widget (i.e., an on-line widget) such as a list box, dialog box, etc.,that contains a listing of the available personnel in the help groupthat are logged in and available to assist users. Unavailable personnelcan be displayed as a separate listing or included with the listing ofavailable personnel but with a busy icon. The help group can comprise oftechnical support personnel, technical experts, and qualified users. Atechnical support personnel can be a user employed by the administratorsof the service portal to provide technical support for the usercommunity. A technical expert is a user that has credentials certifiedby the user community in a particular field and may or may not beemployed by the service portal. A qualified user (“good samaritan”) canbe a user that the user community that has some technical skill andwould like to be helpful. The status of a user can be maintained in aprofile associated with the user.

The directed forum can monitor the log-ins of users into the serviceportal. If the profile of a logged-in user indicates that the user ispart of the help group, the direct forum module places the user in theon-line widget. Alternatively, the directed forum module canperiodically monitor a logged-in user list maintained by the serviceportal. The directed forum module can then search the logged-in userlist for the anyone in the help group to place on the on-line widget.

The directed forum can also be configured to direct questions from theusers to the appropriate person(s) in the on-line help group. Morespecifically, a user can issue a question in the directed forum. Thedirected forum can be configured to parse the question for key words(e.g., Linux, Red Hat, configuration file, etc.). The directed forum canthen use the key words to search the user profiles of the availablepersonnel in the on-line help group for the same key words. The directedforum can forward an electronic message to the matching users in theon-line help group based on key words. Accordingly, a user can get ananswer to his issue or question in a time efficient manner because theissue has been directed to available person who is likely to have ananswer.

FIG. 1 illustrates an exemplary system 100 in accordance with anembodiment. It should be readily apparent to those of ordinary skill inthe art that the system 100 depicted in FIG. 1 represents a generalizedschematic illustration and that other components may be added orexisting components may be removed or modified. Moreover, the system 100may be implemented using software components, hardware components, orcombinations thereof.

As shown in FIG. 1, the system 100 includes a service portal 105 coupledto a network 125. Users 130 can interface with the service portal 105through the network 125. The network 125 can be a combination of localarea networks, wide area networks, public networks, and private networksor combinations thereof such as the Internet.

The users 130 can be interface with the service portal 105 usingcomputing platforms such as personal computers, workstations, privatelocal area networks (e.g., business entity or government entity) orother similar device that can provide network access and interact withthe service portal 105.

In some embodiments, the service portal 105 can be configured to provideservices. As a non-limiting example, the service portal 105 can beconfigured to provide information for users to research, compare andpurchase software, hardware and consulting services in support of thethose software and/or hardware purchases. The service portal 105 canalso be configured to provide support services by subscription to thosesame software and/or hardware purchases. The service portal 105 canfurther be configured to provide a knowledgebase for a user in acommunity can search for answers regarding issues. The community cancomprise of registered and non-registered users.

The service portal 105 can be configured to provide at least thedescribed services with a service backend 135. The service backend 135can comprise at least a knowledge server 110, an issue tracker server115 and a chat server 120.

The knowledge server 110 can be configured to provide a knowledgebasefor the system 100. The knowledgebase can comprise of Wiki pages,articles, frequently asked questions, transcripts of chat sessions,forums, and other informational items related to issues deemed worthdiscussing by the community. The knowledge server 110 can also beconfigured to search and retrieve requested informational items fromthird party sites such as Google™, Yahoo™, etc. The knowledge server 110can then rank and prioritize the search results from internal andexternal sources for the requesting user based on a single interfaceprovided by the server portal 105. In some embodiments, the knowledgeserver 110 can be implemented on a separate server using open-sourcetechnologies.

The service portal 105 can also be configured to interface with theissue tracker server 115, which provide support services for the serviceportal 105. More particularly, a user may have a problem or issue with apurchased software and/or hardware from the service portal 105. The usercan return to the service portal 105 and request support services basedon a purchased service subscription through a user interface generatedby the service portal 105. The service portal 105 can redirect thesupport request to the issue tracker server 115. The issue trackerserver 115 can open an associated service ticket for resolution bysupport personnel. The issue tracker server 115 can also be configuredto attach transcripts of any chat sessions between the support personneland the user as well as documenting the solution(s) to the issue of theuser. In some aspects, the documented solution can be converted into anarticle, added to a frequently asked question list, Wiki page, etc., andpassed onto the knowledge server 110.

The chat server 120 can be configured to couple with the service portal105. A user with an issue or question can log into the service portal105 and search for solutions and/or answers. The service portal 105 cangenerate a user interface and display an option for requestingassistance via a chat session. If a user selects this option, theservice portal 105 can pass the request over to the chat server 120. Thechat server 120 can be configured to provide the chat session to theuser via another user interface provided by the service portal 105. Thechat server 120 can also be configured to save the chat sessions forlater review. For example, support personnel can turn the chat sessioninto an article or extract discussed solutions in the chat sessions intoor add to a frequently asked questions list.

FIG. 2 illustrates a more detailed block diagram of the service portal105 in accordance with another embodiment. It should be readily apparentto those of ordinary skill in the art that the service portal 105depicted in FIG. 2 represents a generalized schematic illustration andthat other components may be added or existing components may be removedor modified.

As shown in FIG. 2, the service portal 105 can comprise a user interfacemodule 205, a controller module 210, a broker module 215, a businesslogic module, a database interface module 225, and a logging module 245.The user interface module 205 can be configured to generate thegraphical user interfaces (“GUIs”) for users to interact with serviceportal 105. The user interface module 205 can generate the necessaryfunctionality of the GUIS based on hypertext markup language (“HTML”)code, cascading style sheets (“CSS”) and/or Java Server Pages (“JSP”).

The user interface module 205 can be configured with a controller module210, which is configured to provide code support for the functionalityembedded in the GUIs of the user interface module 205. Moreparticularly, the controller module 210 can comprise DWR, Dojo, and alibrary of JavaScript apps. The controller module 210 can be implementedusing direct web remoting (DWR). DWR can be considered a Java andJavaScript open source library which allows a programmer to writeAsynchronous JavaScript and XML (“Ajax ”) web applications orinteractive web applications. DWR allows generally JavaScript code inthe GUI generated by the user interface module 205 to use Java methods.

The Dojo component can be considered an open-source JavaScript Toolkitto construct the dynamic web user interfaces. As such, the controllermodule 210 can dynamically generate user interfaces to pass along to theuser interface module 205 for display to a user.

The library of JavaScript apps can define a list of pre-determinedfunctionality that users are likely to call. For example, one JavaScriptcan be “Get Price of Product X”.

The broker module 215 can also be coupled with business logic 220, whichis configured to contain the logic to provide the desired businessservices from the broker module 215 such as processing requests for thedatabase 230. The business logic module 220 can also provide a schemafor inquiries to the databases 230. The databases 230 can, abstractly,contain two databases: a user profile database 235 and a product catalog240. The databases 230 can be implemented using any type of databasesystems provided by vendors such as MySQL, Oracle, Sybase, InternationalBusiness Machines, etc. The business logic module 220 can provide theschema to formulate queries to pass to the databases 230 through thedatabase interface module 225. The business logic module 220 can beimplemented using an open source lightweight framework such as SpringApplication Framework supported by data access objects, beans, andmanager.

The broker module 215 can also be coupled with business logic module220, which is configured to provide a schema for inquiries to thedatabases 230. The databases 230 can, abstractly, comprise of twodatabases: a user profile database 235 and a product catalog 240. Thedatabases 230 can be implemented using any type of database systemsprovided by vendors such as Oracle, Sybase, International BusinessMachines, etc. The business logic module 220 can provide the schema toformulate queries to pass to the databases 230 through the databaseinterface module 225. The business logic module 220 can be implementedusing an open source lightweight framework such as Spring ApplicationFramework supported by data access objects, beans, and manager.

The database interface module 225 can be configured to provide anabstraction between the databases 230 and the business logic module 220.The database interface module 225 can be implemented with Hibernate orother similar abstractions. The database interface module 225 providesobject relational mapping and persistence management with the databases230.

The modules 205-225 of the service portal 105 can also be implementedusing an open source servlet container and webserver such as Tomcat™ insome embodiments. Other embodiments could use proprietary servletcontainer and webserver technologies.

The logging module 245 can be configured to couple with the userinterface module 205, the controller module 210, the broker module 215,the business logic module 220 and the database interface module 225. Thelogging module 245 can also be configured to provide logging andexception handling for all the coupled modules 205-225. Theaforementioned module can provide functions which may be commonly calledby the rest of the modules 205-225 of the service portal 105. Thelogging module 245 can be implemented using aspect-oriented programmingas known to those skilled in the art.

FIG. 3 illustrates a more detailed block diagram of the knowledge server110 in accordance with another embodiment. It should be readily apparentto those of ordinary skill in the art that the knowledge server 110depicted in FIG. 3 represents a generalized schematic illustration andthat other components may be added or existing components may be removedor modified.

FIG. 2 and FIG. 3 share some common components. As such, the descriptionof the common components is being omitted and the description of thesecomponents with respect to the FIG. 2 is being relied upon to provideadequate description of the common components.

As shown in FIG. 3, the knowledge server 110 can comprise at least auser interface module 305, a controller module 310, a broker module 315,a business logic module 320 and a database interface module 325.

Similar to the service portal 105, the user interface module 305 of theknowledge server 110 can be configured to provide the GUIs for users tointeract with the knowledge server 110. The functionality for selectedactions by the users is provided by the controller module 310. Thecontroller module 310 can be configured to provide the associated codefor the requested functionality of the selected action in the GUI. Thebroker module 315 can be configured to provide high-level business logicfor the knowledge server 110. More particularly, the broker module 315can provide filtering for the requests entering the knowledge server110. For these requests, the broker module 315 can receive theserequests from the service portal 105 through the server interface 335.The server interface 335 can be implemented using simple object accessprotocols, web services, etc. The knowledge server 110 can also use theserver interface 335 to return requested information to the serviceportal 105. Unlike the service portal 105, the knowledge server 110 canbe configured to prevent direct access to the knowledge server 110 butcan only be accessed through the service portal 10 5.

The broker module 315 of the knowledge server 110 can also be coupled tothe business logic module 320, which is configured to contain the logicto provide the desired business services as received from the brokermodule 315 such as processing requests for the database 330. Thebusiness logic module 325 can also provide a schema for queries into theknowledgebase database 330. The database interface module 325 can beconfigured to provide a level of abstraction between the queries fromthe broker module 320 to the actual physical implementation of theknowledgebase database 330. As previously described, the knowledgebasedatabase 330 can be implemented with database architectures provided byvendors such as MySQL, Oracle, Sybase, International Business Machines,and other similar manufacturers.

The modules 305-325 of the knowledge server 110 can also be implementedusing an open source servlet container and webserver such as Tomcat™ insome embodiments. Other embodiments could use proprietary servletcontainer and webserver technologies.

FIG. 4 illustrates a more detailed block diagram of the issue trackerserver 115 in accordance with another embodiment. It should be readilyapparent to those of ordinary skill in the art that the issue trackerserver 115 depicted in FIG. 4 represents a generalized schematicillustration and that other components may be added or existingcomponents may be removed or modified.

As shown in FIG. 4, the issue tracker server 115 can comprise a userinterface module 405, a controller module 410, a database interfacemodule 415, and a server interface 425. Similar to the service portal105 and the knowledge server 110, the user interface module 405 of theissue tracker server 115 can be configured to generate GUIs for theservice portal 105 to interface thereto. As with the knowledge server110, the service portal 105 provides a unified interface to the issuetracker server 115. The service portal 105 can be configured to receiverequests from users to access the issue tracker server 115. The receivedrequests are processed by the issue tracker server 115 and anyinformation is returned using the issue tracker server's GUIs asgenerated by the user interface module 405. The service portal 105reformats any returning information from the issue tracker server 115and the other servers in a unified GUI generated by the user interfacemodule 105 of the service portal 105. Accordingly, a user can bepresented with information from the servers (110-120) in a consistentformat.

The user interface module 405 can be implemented using HTML code, CSSsheets, Hypertext Pre-Processor (“PHP”) code and/or Ruby on Rails (ROR)code. The controller module 410 can provide the associated code for thefunctionality provided by the GUIs generated by the user interfacemodule 405.

The controller module 410 can be configured to communicate with the userinterface module 205, controller module 210, and business logic module220, as shown in FIG. 2, through the server interface 425. The serverinterface 425 can use SOAP and/or web service protocols over theInternet to provide a communication channel to the other modules.

The controller module 410 can also be configured to interface with thedatabase 420. The database 420 can be configured to store the open andclosed service tickets. The database 420 can also be configured to storelinks to or the actual articles, chats session used to resolve theissue. In some embodiments, the database 420 can be implemented usingMySQL 5.x database or other open source database. Other embodiments, thedatabase 420 can be implemented using proprietary databases such asOracle, Sybase, IBM, etc.

Although FIG. 4 depicts the user interface module 405, controller module410, and the database interface module 415 as separate components, thesemodules (405-415) can be implemented using LAMP, which is an open sourceWeb development platform based on Linux, Apache, MySQL, and PHP.

FIG. 5 illustrates a more detailed block diagram of the chat server 120in accordance with another embodiment. It should be readily apparent tothose of ordinary skill in the art that the chat server 120 depicted inFIG. 5 represents a generalized schematic illustration and that othercomponents may be added or existing components may be removed ormodified.

The chat server 120 can be configured to provide chat services forusers. The chat server 120 can provide a communication link betweenusers and a group of support personnel. The users can request access tosupport through a GUI of the service portal 105. Some embodiments canuse Wildfire to provide group and instant messaging service using theExtensible Messaging and Presence Protocol (“XMPP”).

As shown in FIG. 5, the chat server 120 can comprise a user interfacemodule 505, a controller module 510, a database interface module 515 anda database 520. The user interface module 505 of the chat server 120 canbe configured to generate GUIs for the service portal 105 to interfacethereto. The user interface module 505 can be implemented using HTMLcode, CSS, and/or Java Server pages.

As with the knowledge server 110 and the issue tracker server 115, theservice portal 105 provides a unified interface to the chat server 120.The service portal 105 can be configured to receive requests from usersto access the chat server 115. The received requests are processed bythe chat server 120 to start a chat session with someone from a group oftechnical support personnel.

The received requests for chats can be processed by the controllermodule 510, which contains the associated code for the selected functionin the GUI by a user. The controller module 510, in some embodiments,can be implemented using DWR.

The controller module 510 can also interface with a database interfacemodule 515. The database interface module 515 can be configured totranslate queries from the controller module 510 to appropriate formatof the database 520 to store and retrieve information. The informationstored in the database 520 can comprise of chat sessions between usersand support personnel. In some embodiments, the database 520 can beimplemented with a MySQL database. Returning to the database interfacemodule 515, this module 515 can be implemented using plain old Javaobjects as known to those skilled in the art.

Although FIG. 5 depicts the user interface module 505, controller module510, and the database interface module 515 as separate components, otherembodiments can implement the functionality of these modules can beimplemented using Tomcat Servlet container and web server from ApacheSoftware Foundation.

Returning to FIG. 3, the knowledge server 110 can be configured with adirected forum module 340 embedded in the controller module 310. Thedirected forum module 340 can be configured to provide a forum withdirected technical support. More particularly, when a user logs-in tothe directed forum, the user can be presented with a GUI widget thatdisplays a list of the logged-in members of a technical assistance(help) group. In some embodiments, the list of logged-in members candisplay the status of each member, whether the member is free or busy.Accordingly, the user can directly contact an available person in thetechnical assistance group for assistance.

Alternatively, the user can input a thread with an issue in the directedforum. The directed forum module can be configured to parse the initialquery of the thread for key words. The key words can be a list ofpredetermined terms that the moderator and/or the user community hasagreed upon to be relevant to the directed forum. For example, for adirected forum about Linux support, some key words can be “Linux”,“installation”, “configuration files”, etc.

With the key words from the query, the directed forum module can beconfigured to search the user profile of the logged-in members of thehelp group to search for the best available member to answer thequestion. As a non-limiting example, the directed forum module can beconfigured to search for the same key words in the user profiles of thelogged-in members. The members of the help group that have highestmatching key words in the user profile with the key words from the queryuser profiles can be considered the best available group to assist therequesting user. Accordingly, the directed forum module can notify themembers of the best available group of the pending question in thedirected forum either by sending a universal resource locator (URL) tothe query or a copy the query via electronic communication means such aselectronic mail or message.

FIG. 6 illustrates a block diagram of the directed forum module 340 inaccordance with yet another embodiment. It should be readily apparent tothose of ordinary skill in the art that the directed forum module 340depicted in FIG. 6 represents a generalized schematic illustration andthat other components may be added or existing components may be removedor modified.

As depicted in FIG. 6, the directed forum module 340 comprises of amanager module 605 coupled to the user interface module 305, the serverinterface 335, the database interface module 325, and a buffer 610. Themanager module 605 is configured to implement the functionality of thedirected forum module 340 as previously described and described ingreater detail below with respect to FIGS. 7-11. The manager module 605can be implemented in software code (Java, C, C++, etc.), hardwaredevice (application specific integrated circuit, field programmable gatearray, microprocessor, etc.) or combination thereof.

Although the manager module 605 is depicted as a separate module in FIG.6, it is readily obvious to those of ordinary skill in the art that thefunctionality of the manager module 605 can be implemented within thecontroller module 310 or the broker module 315 without departing fromthe teachings of the present invention.

The manager module 605 can access the user interface module 305 throughthe existing controller module 310 interfaces with the user interfacemodule 305 as previously described. The user interface module 305 can beconfigured to generate GUIs to provide for the directed forum, whichallow a user to post threads (queries), responses, search the threads ofthe directed forum, review responses/answers, and other typicalfunctions of conventional forums.

The user interface module 305 can also, among other things, provide aGUI widget (dialog box, a list view box, etc.) that displays the list oflogged-in members of the technical assistance group, i.e., the helpgroup, as shown in FIG. 7. As shown in FIG. 7, GUI widget 700 can beembedded as part of the directed forum GUI that a user sees when theuser logs into the directed forum. Alternatively, the GUI widget 700 canbe an overlay that is generated over the directed forum GUI. The GUIwidget 700 can comprise of a title 705 and a list of logged-in andavailable technical support personnel 710. The list of availabletechnical support personnel 710 is a dynamic list as members of thisgroup log in and out. Accordingly, the manager module 605 can beconfigured to add names to the list 710 as they log-in and remove namesas participating members log-off.

Returning to FIG. 6, the manager module 605 can be configured to accessthe database 330 through the existing pathways between the controllermodule 310 and the database interface module 325. Accordingly, themanager module 605 can issue requests to the database interface 325 tosearch, store, and retrieve threads from the knowledgebase database 330.

The manager module 605 can be configured to use the server interface 335to request user profile information from user profile database 235 (seeFIG. 2) of the service portal 105. More specifically, the manager module605 can invoke the request for the user profile and forward the requestthrough the server interface 335 through the broker module 315. Therequest is received at the broker module 215 of the service portal. Thebroker module 215 passes the request to the user profile database 235.The return path for the retrieved user profile is the reverse of theforward path.

FIG. 8 illustrates an exemplary user profile 800 in accordance with yetanother embodiment. It should be readily apparent to those of ordinaryskill in the art that the user profile depicted in FIG. 8 represents ageneralized illustration and that other fields may be added or existingfields may be removed or modified.

As shown in FIG. 8, the user profile 800 can comprise of a usernamefield 805, an address field 810, a user rank field 815, a qualificationfield 820, a rating field 825, a review field 830, and a user statusfield 835. The username field 805 can indicate the name that the userhas selected to be known as in the system 100. Optionally, the userprofile can contain fields for the legal name of the user. The user rankfield 815 can represent a category of user such as ordinary user,technical support, technical expert, employee, vendor, etc., for thesystem 100.

The qualification field 820 can represent a technical resume of theuser. For example, this field 820 can comprise of a description of theuser's experience in Unix or Java programming, Certifications, or yearsof consulting for various information technology companies.

The rating field 825 can represent a rating of the user given by theuser community. In some embodiments of system 100, users can be given arating based on their participation in the system 100. For example, theuser may participate in several forums, posting answers or blogging. Asa result of the participation, the other users can evaluate thepostings/participation and place this rating in this field 825.

The user status field 835 can represent an availability of the user.More particularly, if the user is busy assisting another user, the userstatus field 835 can be set to indicate that this user is unavailable.If the user is available, the user status field 835 can be cleared toindicate availability.

The review field 830 can represent a commentary of the user given by theuser community. Similar to the rating field 825, the users of the usercommunity may provide commentary of the user such as authenticating theuser's qualification based on the user's participation/postings withinthe system 100.

Returning to FIG. 6, as previously described, the manager module 605 canbe configured to add names to the list of available technical supportpersonnel 710 as they log-in and remove names as participating memberson the list 710 log-off. The manager module 605 can maintain the list ofavailable technical assistance 710 in the buffer 610. The buffer 610 canbe a reserved section of main memory of the underlying server (notshown) that serves as the computing platform of the knowledge server110.

FIG. 9 illustrates an exemplary flow diagram 900 executed by thedirected forum module 340 in accordance with yet another embodiment. Itshould be readily apparent to those of ordinary skill in the art thatthe flow diagram 900 depicted in FIG. 9 represents a generalizedschematic illustration and that other steps may be added or existingsteps may be removed or modified.

As shown in FIG. 9, the manager module 605 can be configured to monitorthe log-in of users into the service portal 105, in step 905. Forexample, the service portal 105 can send a message to the manager module605 after the user is authenticated.

In step 910, the manager module 605 can send a request for the userprofile of the user to the service portal 105 to check whether the useris part of the technical assistance group (or help group). When the userprofile is returned, the manager module 605 can check the user statusfield 715 to determine whether the user is a member of the help group.

If the user is part of the help group, the manager module 605 can beconfigured to add the user to the help group, i.e., add the username ofthe user to the list 710, in step 920. Subsequently, the manager module620 returns to the processing of step 905. Similarly, if the user is notpart of the help group, the manager module 605 returns to the processingof step 905.

FIG. 10 illustrates a flow diagram 1000 implemented by the directedforum module 340 in accordance with yet another embodiment. It should bereadily apparent to those of ordinary skill in the art that the flowdiagram 1000 depicted in FIG. 10 represents a generalized schematicillustration and that other steps may be added or existing steps may beremoved or modified.

As shown in FIG. 10, the manager module 605 can monitor for the log-offof users, in step 1005. For example, the service portal 105 can beconfigured to send a message notifying that a selected user has loggedoff to the manager module 605.

In step 1010, the manager module 605 can be configured to check theusername of the logged-off user with the current list of availabletechnical assistance 710. If there is a username match, the managermodule 605 can be configured to update the list 710 by removing thematching username, in step 1015. Otherwise, the manager module 605returns to the processing of 1005.

FIG. 11 illustrates a flow diagram 1100 implemented by the directedforum module 340 in accordance with yet another embodiment. It should bereadily apparent to those of ordinary skill in the art that the flowdiagram 1100 depicted in FIG. 11 represents a generalized schematicillustration and that other steps may be added or existing steps may beremoved or modified.

As shown in FIG. 11, the manager module 605 can monitor the directedforum for queries by users, in step 1105. When a user posts a new threador query, the manager module 605 can be configured to parse the queryfor key words, in step 1110. More particularly, the manager module 605can be configured to search for the key words based on a set of keywords developed by the forum administrator and/or user community. Theset of key words can be terms that are relevant to the directed forum.For example, a forum related to Linux can have key words such as RedHat, installation files, configuration files, open source, etc.

In step 1115, the manager module 605 can be configured to perform asimilar key word search using the key words from the query on the userprofiles of users on the list of available technical assistance 710. Themanager module 605 can collate a list of users on the list 710 that havematching terms.

In step 1120, the manager module 605 can be configured to determinewhich member of the list of available technical assistance 710 is bestsuited to answer the posted query. The criteria can be a predeterminednumber of matches between key words of the user profile and query keywords.

If the manager module 605 can determine a best available personnel fromstep 1020, the manager module 605 can forward the posted query or a linkto the selected member(s) on the list of available technical assistance710, in step 1025. Otherwise, the manager module 605 can notify all themembers of the list 710 of the posted query. Alternatively, the managermodule 605 can return to the processing of step 1105.

Certain embodiments may be performed as a computer program. The computerprogram may exist in a variety of forms both active and inactive. Forexample, the computer program can exist as software program(s) comprisedof program instructions in source code, object code, executable code orother formats; firmware program(s); or hardware description language(HDL) files. Any of the above can be embodied on a computer readablemedium, which include storage devices and signals, in compressed oruncompressed form. Exemplary computer readable storage devices includeconventional computer system RAM (random access memory), ROM (read-onlymemory), EPROM (erasable, programmable ROM), EEPROM (electricallyerasable, programmable ROM), and magnetic or optical disks or tapes.Exemplary computer readable signals, whether modulated using a carrieror not, are signals that a computer system hosting or running thepresent invention can be configured to access, including signalsdownloaded through the Internet or other networks. Concrete examples ofthe foregoing include distribution of executable software program(s) ofthe computer program on a CD-ROM or via Internet download. In a sense,the Internet itself, as an abstract entity, is a computer readablemedium. The same is true of computer networks in general.

While the invention has been described with reference to the exemplaryembodiments thereof, those skilled in the art will be able to makevarious modifications to the described embodiments without departingfrom the true spirit and scope. The terms and descriptions used hereinare set forth by way of illustration only and are not meant aslimitations. In particular, although the method has been described byexamples, the steps of the method may be performed in a different orderthan illustrated or simultaneously. Those skilled in the art willrecognize that these and other variations are possible within the spiritand scope as defined in the following claims and their equivalents.

1. A method of providing directed discussion, the method comprising:providing an on-line forum in a service portal; providing, an assistancelist to a first user of the on-line forum in the service portal whereinthe assistance list comprises identifiers of other users of the on-lineforum that are members of a help group of the service portal and thatare currently available to respond to queries; monitoring a user log-inprocedure and user log-out procedure at the service portal; when a newuser logs into the service portal: determining a technical status of thenew user; and when the technical status of the new user indicates beinga member of the help group, placing an identifier of the new user on theassistance list; when one of the other users identified on theassistance list logs out of the service portal, removing the identifierof the one of the other users from the assistance list; receiving aquery from the first user at a server device hosting the on-line forum;parsing the query for a set of forum-moderated key words that relates toa technical issue of the first user; retrieving, using the serverdevice, a set of profiles associated with the other users identified onthe assistance list, wherein each profile in the set of profilescomprises technical expertise data associated with a respective user ofthe other users; searching the set of profiles associated with the otherusers identified on the assistance list with the set of forum-moderatedkey words to determine an expert user of the other users that has anassociated profile with a highest number of key words in the technicalexpertise data that match the set of forum-moderated key words; anddirecting the query to the expert user.
 2. The method of claim 1,further comprising determining a status between the set offorum-moderated key words and the set of profiles.
 3. The method ofclaim 2, wherein the expert user is determined based on the status of amatch between the set of forum-moderated key words and the profileassociated with the expert user.
 4. The method of claim 2, furthercomprising directing the query to each of the other users identified onthe assistance list when there is no match between the set offorum-moderated key words and the set of profiles associated with theother users identified on the assistance list.
 5. The method of claim 1,further comprising: searching the set of profiles, each profile of theset of profiles comprising a user rank field, a qualification field, arating field, a user status field and a review field with the set offorum-moderated key words; identifying a matching profile from the setof profiles, the matching profile comprising a predetermined number ofmatches of the set of forum-moderated key words in the query.
 6. Themethod of claim 5, further comprising: transmitting a group widenotification when no matching profile is identified.
 7. A system forproviding a directed forum, the system comprising: a processor coupledto memory; a network interface coupled to a server and configured tointerface with a network; and a directed forum module stored in memoryand configured to execute on the server and available for access by aplurality of users from remote locations over the network, wherein thedirected forum module is configured to provide an on-line forum in aservice portal; provide, an assistance list to a first user of theon-line forum in the service portal wherein the assistance listcomprises identifiers of other users of the on-line forum that aremembers of a help group of the service portal and that are currentlyavailable to respond to queries; monitor a user log-in procedure anduser log-out procedure at the service portal; when a new user logs intothe service portal: determine a technical status of the new user; andwhen the technical status of the new user indicates being a member ofthe help group, place an identifier of the new user on the assistancelist; when one of the other users identified on the assistance list logsout of the service portal, remove the identifier of the one of the otherusers from the assistance list; receive a query from the first user inthe on-line forum; parse the query for a set of forum-moderated keywords that relates to a technical issue of the first user; retrieve aset of profiles associated with the other users identified on theassistance list, wherein each profile in the set of profiles comprisestechnical expertise data associated with a respective user of the otherusers; search the set of profiles associated with the other usersidentified on the assistance list with the set of forum-moderated keywords to determine an expert user of the other users that has anassociated profile with a highest number of key words in the technicalexpertise data that match the set of forum-moderated key words; anddirect the query to the expert user.
 8. The system of claim 7, whereinthe directed forum module is further configured to determine a statusbetween the set of forum-moderated key words and the set of profiles. 9.The system of claim 8, wherein the expert user is determined based onthe status of a match between the set of forum-moderated key words andthe profile associated with the expert user.
 10. The system of claim 8,wherein the directed forum module is further configured to direct thequery to each of the other users identified on the assistance list whenthere is no match between the set of forum-moderated key words and theset of profiles associated with the other users identified on theassistance list.
 11. The system of claim 7, wherein the direct forummodule further configured to: search the set of profiles, each profileof the set of profiles comprising a user rank field, a qualificationfield, a rating field, a user status field and a review field with theset of forum-moderated key words; identify a matching profile from theset of profiles, the matching profile comprising a predetermined numberof matches of the set of forum-moderated key words in the query.
 12. Thesystem of claim 11, wherein the direct forum module further configuredto: transmit a group wide notification when no matching profile isidentified.
 13. A non-transitory computer readable storage medium havinginstructions stored therein that, when executed by a hardware device,cause the hardware device to perform the following operationscomprising: providing an on-line forum in a service portal; providing agraphical user interface of a dialog box overlaying a forum interface,wherein the forum interface is associated with the on-line forum in theservice portal; monitoring a set of profiles of forum members as theassociated forum members log in and log out of the service portal;populating an assistance list within the dialog box, the assistance listcomprising identifiers of forum members that are part of a help group ofthe service portal and that are currently available to respond toqueries; when a forum member logs into the service portal: determining atechnical status of the forum member; and when the technical status ofthe forum member indicates that the forum member is part of the helpgroup, placing an identifier of the forum member on the assistance list;when a forum member identified on the assistance list logs out of theservice portal, removing the identifier of the forum member from theassistance list; receiving an issue-based thread comprising an initialquery; parsing the initial query for a list of predetermined communityterms; identifying a set of keywords from the initial query and the listof predetermined community terms; retrieving a set of profilesassociated with the forum members in the assistance list, wherein eachprofile in the set of profiles comprises technical expertise dataassociated with a respective forum member on the assistance list;searching the set of profiles associated with the forum members in theassistance list with the set of keywords to determine an expert forummember from the forum members in the assistance list, the expert forummember having an associated profile with a highest number of key wordsin the technical expertise data that match the set of key words; andtransmitting a notification of the initial query to the expert forummember.
 14. The non-transitory computer readable storage medium of claim13, further comprising instructions that, when executed by a hardwaredevice, cause the hardware device to perform the following: searchingthe set of profiles of forum members, each profile of the set ofprofiles comprising a user rank field, a qualification field, a ratingfield, a user status field and a review field with the set of keywords;and identifying a matching profile from the set of profiles, thematching profile comprising a predetermined number of matches of the setof keywords in the initial query.
 15. The non-transitory computerreadable storage medium of claim 14, further comprising instructionsthat, when executed by a hardware device, cause the hardware device toperform the following: transmitting a group wide notification when nomatching profile is identified.